package com.chub.study.modules.entity;

import cn.hutool.core.date.DatePattern;
import com.chub.study.modules.base.BaseVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 人员信息表
 *
 * @author Chub
 * @since 2024-08-28
 */
@Data
@ApiModel(value="PsnInfo", description="人员信息表")
public class PsnInfoVO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 记录标识32
     */
    @ApiModelProperty(value = "记录标识32 rcrdId")
    private String rcrdId;

    /**
     * 项目编号
     */
    @ApiModelProperty(value = "项目编号 prjCode")
    private String prjCode;

    /**
     * 项目关系人类型,参见字典:PRJ_RPSN_TYPE
     */
    @ApiModelProperty(value = "项目关系人类型,参见字典:PRJ_RPSN_TYPE prjRpsnType")
    private String prjRpsnType;

    /**
     * 人员编号
     */
    @ApiModelProperty(value = "人员编号 psnCode")
    private String psnCode;

    /**
     * 客户编号
     */
    @ApiModelProperty(value = "客户编号 custCode")
    private String custCode;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名 name")
    private String name;

    /**
     * 曾用名
     */
    @ApiModelProperty(value = "曾用名 usedName")
    private String usedName;

    /**
     * 年龄
     */
    @ApiModelProperty(value = "年龄 age")
    private Integer age;

    /**
     * 性别
     */
    @ApiModelProperty(value = "性别 gend")
    private String gend;

    /**
     * 出生日期
     */
    @ApiModelProperty(value = "出生日期 brthDate")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATE_PATTERN)
    private LocalDate brthDate;

    /**
     * 婚姻状况
     */
    @ApiModelProperty(value = "婚姻状况 marrSttn")
    private String marrSttn;

    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型 idntType")
    private String idntType;

    /**
     * 证件号码
     */
    @ApiModelProperty(value = "证件号码 idntCode")
    private String idntCode;

    /**
     * 证件是否长期有效, 0-否,1-是
     */
    @ApiModelProperty(value = "证件是否长期有效, 0-否,1-是 idntLgtmEff")
    private String idntLgtmEff;

    /**
     * 证件有效期开始日期
     */
    @ApiModelProperty(value = "证件有效期开始日期 idntBgnDate")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATE_PATTERN)
    private LocalDate idntBgnDate;

    /**
     * 证件有效期终止日期
     */
    @ApiModelProperty(value = "证件有效期终止日期 idntTmtDate")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATE_PATTERN)
    private LocalDate idntTmtDate;

    /**
     * 移动电话
     */
    @ApiModelProperty(value = "移动电话 mblTel")
    private String mblTel;

    /**
     * 固定电话
     */
    @ApiModelProperty(value = "固定电话 fixdTel")
    private String fixdTel;

    /**
     * 办公电话
     */
    @ApiModelProperty(value = "办公电话 offcTel")
    private String offcTel;

    /**
     * 家庭电话
     */
    @ApiModelProperty(value = "家庭电话 fmlyTel")
    private String fmlyTel;

    /**
     * 传真
     */
    @ApiModelProperty(value = "传真 fax")
    private String fax;

    /**
     * 国籍
     */
    @ApiModelProperty(value = "国籍 nat")
    private String nat;

    /**
     * 电子邮箱
     */
    @ApiModelProperty(value = "电子邮箱 emal")
    private String emal;

    /**
     * 备用邮箱
     */
    @ApiModelProperty(value = "备用邮箱 stdbEmal")
    private String stdbEmal;

    /**
     * 职业
     */
    @ApiModelProperty(value = "职业 ocp")
    private String ocp;

    /**
     * 职务名称
     */
    @ApiModelProperty(value = "职务名称 posName")
    private String posName;

    /**
     * 年薪
     */
    @ApiModelProperty(value = "年薪 yearSlry")
    private BigDecimal yearSlry;

    /**
     * 工作年限
     */
    @ApiModelProperty(value = "工作年限 workYear")
    private Integer workYear;

    /**
     * 学历
     */
    @ApiModelProperty(value = "学历 eduDgr")
    private String eduDgr;

    /**
     * 统一社会信用代码
     */
    @ApiModelProperty(value = "统一社会信用代码 undSociCode")
    private String undSociCode;

    /**
     * 顺位号
     */
    @ApiModelProperty(value = "顺位号 rankNum")
    private Integer rankNum;

    /**
     * 一级分行
     */
    @ApiModelProperty(value = "一级分行 lvl1Brch")
    private String lvl1Brch;

    /**
     * 二级分行
     */
    @ApiModelProperty(value = "二级分行 lvl2Brch")
    private String lvl2Brch;

    /**
     * 三级分行
     */
    @ApiModelProperty(value = "三级分行 lvl3Brch")
    private String lvl3Brch;

    /**
     * 账号
     */
    @ApiModelProperty(value = "账号 accNum")
    private String accNum;

    /**
     * 账户名称
     */
    @ApiModelProperty(value = "账户名称 accName")
    private String accName;

    /**
     * 开户行
     */
    @ApiModelProperty(value = "开户行 openBank")
    private String openBank;

    /**
     * 开户支行
     */
    @ApiModelProperty(value = "开户支行 openSubBrch")
    private String openSubBrch;

    /**
     * 紧急联系人姓名
     */
    @ApiModelProperty(value = "紧急联系人姓名 emgrCtctName")
    private String emgrCtctName;

    /**
     * 紧急联系人电话
     */
    @ApiModelProperty(value = "紧急联系人电话 emgrCtctTel")
    private String emgrCtctTel;

    /**
     * 有效状态,参见字典:EFF_STAT
     */
    @ApiModelProperty(value = "有效状态,参见字典:EFF_STAT effStat")
    private String effStat;
}
